package net.siufung.boot.datasource.entity;

import lombok.Data;
import net.siufung.core.utils.StringPool;

import java.io.Serializable;

/**
 * @author 陈建峰
 * @since 2022/8/11 6:10 下午
 */
@Data
public class TableField implements Serializable {

    private static final long serialVersionUID = -5730050049264878983L;

    /**
     * 是否是主键
     */
    private boolean primaryKey;
    /**
     * 主键是否为自增类型
     */
    private boolean keyIdentity;
    /**
     * 名称
     */
    private String name;
    /**
     * 类型
     */
    private String type;
    /**
     * 长度
     */
    private String size;
    /**
     * 空值状态值
     */
    private Boolean emptyValue;
    /**
     * 注释
     */
    private String comment;
    /**
     * 是否关键字
     */
    private boolean keyWords;
    /**
     * 字段扩展
     */
    private TableFieldExtra fieldExtra;


    /**
     * 判断数据类型长度
     * @param fieldType 数据类型
     * @return String
     */
    public String getSize(String fieldType) {
        String repeat = "";
        int size = 0;
        String type = fieldType.toLowerCase();
        if (type.contains(StringPool.CHAR)) {
            size = Integer.parseInt(type.substring(
                    type.indexOf("(") + 1, type.lastIndexOf(")")));
        }
        return String.valueOf(size);
    }
}
